Logic Programming Systems
HYPROLOG

      Henning Christiansen

Roskilde University
    Denmark


Editor: Enrico Pontelli




System Web Page: http://www.ruc.dk/~henning/hyprolog/

HYPROLOG is an extension to Prolog and Constraint Handling Rules (CHR) with abduction and assumptions. The system is implemented by a compiler that translates the HYPROLOG syntax in a rather direct way into Prolog and CHR; HYPROLOG queries are then executed directly by Prolog and CHR.

Version 0.0 was released in 2005 for SICStus Prolog 3, and the new version 0.2, October 2008, includes now downloads for the three different platforms SICStus 3,ÊSICStus 4 and SWI Prolog.

A few known bugs have been corrected, more example programs are included, and the website has been polished. Find the system, including a comprehensive User's Guide at

http://www.ruc.dk/~henning/hyprolog/

HYPROLOG is fully integrated with the underlying Prolog+CHR environment, which means that all built-in and library predicates and constraint solvers can be used with abduction and assumptions. It allows any integrity constraint which can be written as a CHR rule. The only important limitation of HYPROLOG is its limited support of negation.

With respect to efficiency, the HYPROLOG system is among the fastest implementations of abduction due to the compiled approach, which thus employs also the underlying optimizing compilers for Prolog and CHR, and any future enhancements thereof. HYPROLOG's assumptions are about 10 times slower than the hardwired version available in BinProlog, but future improvements of CHR's indexing techniques may change this.

You may, as an option, command HYPROLOG to print out the automatically generated CHR rules, which demonstrate how abduction and assumptions can be implemented with surprisingly few lines of CHR; you can in principle copy-paste these rules into your own Prolog program (which imports the CHR library) and leave out the HYPROLOG system.

HYPROLOG has been thought out by Henning Christiansen and Veronica Dahl and implemented by Henning Christiansen, and is described in the following article.

H. Christiansen and V. Dahl, HYPROLOG: A New Logic Programming Language with Assumptions and Abduction, In: Proc. International Conference on Logic Programming, ICLP'05, M. Gabbrielli and G. Gupta (Eds.), pp. 159-173, 2005. Lecture Notes in Computer Science 3668.
See pdf.
The implementation and semantics principles behind HYPROLOG are spelled out in the following paper.
H. Christiansen. Executable specifications for hypothesis-based reasoning with Prolog and Constraint Handling Rules, Journal of Applied Logic, to appear 2008 or -09.
Preliminary version available as pdf.
You may find other publications on HYPROLOG and its applications via these authors' home pages. The sample programs included with the system demonstrate different applications of abduction and assumptions, including natural language analysis (combining with Prolog's DCG notation), planning and diagnosis problems, job scheduling, abduction with constraint solving, etc.